Benjamin Otte [Sun, 10 Jul 2022 19:15:22 +0000 (21:15 +0200)]
frameclock: Run paint idle from flush idle
Don't return to the main loop, instead force a run of the paint idle.
The paint idle will know to skip all the phases that aren't requested.
This is critically important becuase gdksurface.c assumes the
FLUSH_EVENTS and RESUME_EVENTS phases are matched, and we cannot
guarantee that if we return to the main loop and let various reentrant
code change the frame clock state.
This would lead to bugs with events being paused and never unpaused
again or even crashes.
Fixes #4941
Matthias Clasen [Wed, 29 Jun 2022 20:05:44 +0000 (20:05 +0000)]
Merge branch 'wip/jimmac/selectable-labels' into 'main'
theme: selectable labels legibility
Closes #5017
See merge request GNOME/gtk!4840
Jakub Steiner [Wed, 29 Jun 2022 19:37:20 +0000 (21:37 +0200)]
theme: selectable labels legibility
- don't set fg color for selections
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5017
Matthias Clasen [Wed, 29 Jun 2022 19:16:32 +0000 (19:16 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gtk-demo: Cosmetics
See merge request GNOME/gtk!4839
Benjamin Otte [Wed, 29 Jun 2022 13:00:53 +0000 (13:00 +0000)]
Merge branch 'testdatatable' into 'main'
tests: Add testdatatable
See merge request GNOME/gtk!4838
Ivan Molodetskikh [Wed, 29 Jun 2022 04:46:21 +0000 (21:46 -0700)]
tests: Add testdatatable
Add a GtkColumnView scrolling performance test similar to the one used
previously in https://gitlab.gnome.org/GNOME/gtk/-/issues/3334.
The test creates a table with 20 columns and 10,000 rows and scrolls it
to a random position every frame, while measuring the frame times.
There is a commandline flag to pick the cell widget between none (for
benchmarking raw column view scrolling) and various label types. There
is also a commandline switch to disable automatic scrolling in case a
manual assessment is desired. Finally, there's an argument for
controlling the number of columns.
Emmanuele Bassi [Tue, 28 Jun 2022 21:02:46 +0000 (21:02 +0000)]
Merge branch 'ebassi/ci-publish-doc-fix' into 'main'
ci: Force the fedora image for the publish-docs job
See merge request GNOME/gtk!4837
Emmanuele Bassi [Tue, 28 Jun 2022 20:31:07 +0000 (21:31 +0100)]
ci: Force the fedora image for the publish-docs job
Otherwise every CI runner might decide to use a different default
image, and we'll end up on one that doesn't have curl.
Benjamin Otte [Tue, 28 Jun 2022 19:30:17 +0000 (19:30 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
Rework listitemfactory
See merge request GNOME/gtk!4835
Emmanuele Bassi [Tue, 28 Jun 2022 17:59:31 +0000 (17:59 +0000)]
Merge branch 'template-signals' into 'main'
Force quark creation for templates
See merge request GNOME/gtk!4836
Maximiliano Sandoval R [Tue, 28 Jun 2022 16:48:38 +0000 (18:48 +0200)]
Force quark creation for templates
Sabri Ünal [Tue, 28 Jun 2022 15:52:12 +0000 (15:52 +0000)]
Update Turkish translation
Benjamin Otte [Tue, 28 Jun 2022 14:33:24 +0000 (16:33 +0200)]
signallistitemfactory: Update signal prototype
I'm not sure this is API safe, but it is necessary if we want to support
section items and canvas items.
If it's deemed API-unstable, we have to copy this object and deprecate
this one.
Benjamin Otte [Tue, 28 Jun 2022 14:34:24 +0000 (16:34 +0200)]
listitemfactory: Make this callback-based
This way, we no longer prescribe the use of either GtkListItem or
GtkListItemWidget.
This means we can use it in other places, such as for custom section
header objects or with my Canvas ideas.
Benjamin Otte [Tue, 28 Jun 2022 14:25:31 +0000 (16:25 +0200)]
picture: Clear the paintable properly
Add a clear() function and call it from dispose() instead of using
set_paintable().
Danial Behzadi [Tue, 28 Jun 2022 10:31:16 +0000 (10:31 +0000)]
Update Persian translation
Aleksandr Melman [Sat, 25 Jun 2022 18:36:18 +0000 (18:36 +0000)]
Update Russian translation
Quentin PAGÈS [Sat, 25 Jun 2022 08:56:48 +0000 (08:56 +0000)]
Update Occitan translation
Benjamin Otte [Fri, 24 Jun 2022 03:39:16 +0000 (03:39 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
gdk: Replace GTK_USE_PORTAL env var with GDK_DEBUG flag
See merge request GNOME/gtk!4829
Benjamin Otte [Fri, 24 Jun 2022 00:15:25 +0000 (02:15 +0200)]
gdk: Replace GTK_USE_PORTAL env var with GDK_DEBUG flag
It's a debug flag, so make it clear that it is one.
Related: Clowns on the Arch wiki on
https://wiki.archlinux.org/title/Uniform_look_for_Qt_and_GTK_applications#Consistent_file_dialog
Matthias Clasen [Thu, 23 Jun 2022 21:46:45 +0000 (21:46 +0000)]
Merge branch 'alatiera/doc-type' into 'main'
shortcutcontroller: fix typo in property docs
See merge request GNOME/gtk!4827
Hugo Carvalho [Thu, 23 Jun 2022 21:41:23 +0000 (21:41 +0000)]
Update Portuguese translation
Jordan Petridis [Thu, 23 Jun 2022 19:33:51 +0000 (22:33 +0300)]
shortcutcontroller: fix typo in property docs
followup of
d7dae84af248bc198601cad89441724c5345504d
Matthias Clasen [Thu, 23 Jun 2022 11:59:55 +0000 (11:59 +0000)]
Merge branch 'bad-popup-extents' into 'main'
[x11] Fix coordinate space of rect in gdk_x11_surface_get_frame_extents when called on popups.
See merge request GNOME/gtk!4820
Matthias Clasen [Sun, 19 Jun 2022 21:51:06 +0000 (14:51 -0700)]
gtk-demo: Cosmetics
Tweak the complicated textview demo a bit.
Matthias Clasen [Thu, 23 Jun 2022 11:39:33 +0000 (11:39 +0000)]
Merge branch 'wip/jtojnar/demo-pickers-no-dirs' into 'main'
gtk-demo: Remove mention of directories in picker examples
See merge request GNOME/gtk!4825
Jan Tojnar [Wed, 22 Jun 2022 21:07:11 +0000 (23:07 +0200)]
gtk-demo: Remove mention of directories in picker examples
Those were removed in https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2909.
Asier Sarasua Garmendia [Wed, 22 Jun 2022 19:17:51 +0000 (19:17 +0000)]
Update Basque translation
Yuri Chornoivan [Wed, 22 Jun 2022 19:06:56 +0000 (19:06 +0000)]
Update Ukrainian translation
Matthias Clasen [Wed, 22 Jun 2022 18:25:13 +0000 (18:25 +0000)]
Merge branch 'wip/otte/inspector-inspector' into 'main'
inspector: Inspect
See merge request GNOME/gtk!4822
Matthias Clasen [Wed, 22 Jun 2022 14:24:41 +0000 (14:24 +0000)]
Merge branch 'wip/xdg-toplevel-bounds' into 'main'
wayland: Add supports for xdg_toplevel.bounds
See merge request GNOME/gtk!4261
Matthias Clasen [Wed, 22 Jun 2022 14:20:11 +0000 (14:20 +0000)]
Merge branch 'gtk-window-export-handle-win32' into 'main'
Implement gtk_window_export_handle for other backends
See merge request GNOME/gtk!4824
Daniel Mustieles [Wed, 22 Jun 2022 08:45:59 +0000 (10:45 +0200)]
Updated Spanish translation
Luca Bacci [Tue, 21 Jun 2022 09:45:19 +0000 (11:45 +0200)]
Add stub gtk_window_export_handle implementation for some backends
Benjamin Otte [Tue, 21 Jun 2022 00:33:20 +0000 (02:33 +0200)]
inspector: Add an "inspect inspector" button
And launch a new inspector.
The location of that button is rather random - I had no idea where to
put it.
Benjamin Otte [Tue, 21 Jun 2022 00:32:33 +0000 (02:32 +0200)]
object-tree: Allow inspecting inspectors
We filter by display, so the inspector window should show up only when
inspecting the inspector.
Benjamin Otte [Tue, 21 Jun 2022 00:30:47 +0000 (02:30 +0200)]
inspector: Don't use global variable here
When inspecting the inspector, we want to create mutiple displays here.
If we need this to be global, we should store it per-inspected-display.
Aurimas Černius [Mon, 20 Jun 2022 19:18:16 +0000 (22:18 +0300)]
Updated Lithuanian translation
Emilio Cobos Álvarez [Mon, 20 Jun 2022 08:11:29 +0000 (10:11 +0200)]
[x11] Fix coordinate space of rect in gdk_x11_surface_get_frame_extents when called on popups.
If we take the early return we don't unscale this at the bottom of the
function, causing wrong coordinates in HiDPI screens.
This bug also affects GTK3 (I noticed this running Firefox tests on X).
Matthias Clasen [Fri, 17 Jun 2022 22:38:16 +0000 (22:38 +0000)]
Merge branch 'alatiera/inscription-since' into 'main'
inscription: Add missing Since annotations
See merge request GNOME/gtk!4815
Luca Bacci [Fri, 17 Jun 2022 09:37:14 +0000 (09:37 +0000)]
Merge branch 'gdk-win32-gtk-overlay-scrolling' into 'main'
GdkWin32: Add code for gtk-overlay-scrolling setting
Closes #4899
See merge request GNOME/gtk!4816
Luca Bacci [Fri, 17 Jun 2022 08:55:21 +0000 (10:55 +0200)]
GdkWin32: Add code for gtk-overlay-scrolling setting
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4899
Jordan Petridis [Thu, 16 Jun 2022 21:15:46 +0000 (00:15 +0300)]
inscription: Add missing Since annotations
Matthias Clasen [Wed, 15 Jun 2022 13:40:17 +0000 (13:40 +0000)]
Merge branch 'wip/jimmac/hc-sidebar-borders' into 'main'
HC: make selected items better visible
Closes #4984
See merge request GNOME/gtk!4813
Jakub Steiner [Wed, 15 Jun 2022 12:47:47 +0000 (14:47 +0200)]
HC: make selected items better visible
- follow libadwaita's example and outline selected items for better visibility
in high contrast variant
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4984
Jordi Mas [Tue, 14 Jun 2022 17:41:12 +0000 (19:41 +0200)]
Update Catalan translation
Matthias Clasen [Tue, 14 Jun 2022 12:25:02 +0000 (12:25 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gtk-demo: Add some keywords
See merge request GNOME/gtk!4812
Benjamin Otte [Tue, 14 Jun 2022 03:45:55 +0000 (03:45 +0000)]
Merge branch 'wip/antoniof/dont-rubberband-on-drag-end' into 'main'
listbase: Don't start rubberband on ::drag-end
See merge request GNOME/gtk!4793
Jonas Ådahl [Tue, 4 Aug 2020 14:52:20 +0000 (16:52 +0200)]
wayland: Add support for xdg_toplevel.bounds
The GdkToplevelSize struct already has the concept of "bounds", which
means the largest size a window should reasonably have. It's practically
the equivalent of the monitor the window is intended to be mapped on,
with the "struts" (e.g. panels) cut out. It's used by GTK to use this
information to calculate a default window size that is "lagom" (swedish;
not too large, not too small).
Jordi Mas [Mon, 13 Jun 2022 18:01:17 +0000 (20:01 +0200)]
Update Catalan translation
Matthias Clasen [Mon, 13 Jun 2022 15:16:51 +0000 (11:16 -0400)]
gtk-demo: Add some keywords
Make it so that the right demos show up when
you search for GtkInscription.
Aleksandr Melman [Mon, 13 Jun 2022 13:26:30 +0000 (13:26 +0000)]
Update Russian translation
Benjamin Otte [Mon, 13 Jun 2022 12:08:16 +0000 (12:08 +0000)]
Merge branch 'wip/otte/inscription' into 'main'
Inscription: Derive row alignment from xalign
See merge request GNOME/gtk!4811
Danial Behzadi [Mon, 13 Jun 2022 06:44:53 +0000 (06:44 +0000)]
Update Persian translation
Danial Behzadi [Mon, 13 Jun 2022 05:48:56 +0000 (05:48 +0000)]
Update Persian translation
Benjamin Otte [Mon, 13 Jun 2022 03:30:08 +0000 (05:30 +0200)]
reftests: Add an inscription xalign RTL test
This checks mainly that we do the right thing wrt PangoAlignment
weirdness.
0.25 and 0.75 are set to 0.0 and 1.0 currently because of Pango
limitations (and no desire to manually move lines).
But if that were to be fixed, both the ref and the test should update in
the same way and things should just keep working.
Benjamin Otte [Mon, 13 Jun 2022 02:54:19 +0000 (04:54 +0200)]
inscription: Multiparagraph text is always multiline
Wrap this text and clip towards the bottom, no matter how high the
inscription is.
Benjamin Otte [Mon, 13 Jun 2022 02:53:35 +0000 (04:53 +0200)]
inscription: Do not try to align layouts that have a proper width set
Pango knows where to put the text.
Benjamin Otte [Sun, 12 Jun 2022 23:26:20 +0000 (01:26 +0200)]
reftests: Add inscription reftest for xalign
Compare with labels again.
Georges Basile Stavracas Neto [Sun, 12 Jun 2022 17:27:33 +0000 (14:27 -0300)]
Inscription: Derive row alignment from xalign
Texts usually want the alignment of each row to match the xalign of
the text itself.
Derive the alignment of the PangoLayout from the xalign property of
the inscription. Because Pango doesn't provide float row alignment,
map left, center and right from the xalign in 1 / 3 steps.
Piotr Drąg [Sun, 12 Jun 2022 12:52:37 +0000 (14:52 +0200)]
Update POTFILES.skip
Matthias Clasen [Sun, 12 Jun 2022 01:38:40 +0000 (01:38 +0000)]
Merge branch 'wip/otte/inscription' into 'main'
More inscription work
See merge request GNOME/gtk!4808
Benjamin Otte [Sun, 12 Jun 2022 00:58:22 +0000 (02:58 +0200)]
inscription: Add ::wrap-mode
We use a different wrap-mode than GtkLabel, because we cannot just
resize the widget to make long words fit, we have to fit the size we are
given.
Benjamin Otte [Sun, 12 Jun 2022 00:42:00 +0000 (02:42 +0200)]
reftests: Test inscription multiline overflow
Benjamin Otte [Sat, 11 Jun 2022 18:27:53 +0000 (20:27 +0200)]
gtk-demo: Add a "Read More" label demo.
Benjamin Otte [Sat, 11 Jun 2022 20:15:43 +0000 (22:15 +0200)]
reftests: Test overflowing inscription yalign
Overflowing inscriptions should always align to the top, even when half
an extra line is available.
Matthias Clasen [Sat, 11 Jun 2022 15:15:53 +0000 (15:15 +0000)]
Merge branch 'wip/otte/listmodels' into 'main'
19 listmodels: Add ::item-type and ::n-items
See merge request GNOME/gtk!4807
Benjamin Otte [Sat, 11 Jun 2022 14:28:27 +0000 (16:28 +0200)]
inscription: Fixate layout at top when it doesn't fit
Ellipsized and clipped layouts shouldn't reposition themselves according
to yalign when they don't fully fit.
Benjamin Otte [Sat, 11 Jun 2022 05:34:36 +0000 (07:34 +0200)]
assistant: Add ::item-type and ::n-items to the pages list
Matthias Clasen [Sat, 11 Jun 2022 13:47:20 +0000 (13:47 +0000)]
Merge branch 'wip/otte/inscription' into 'main'
Add GtkInscription
See merge request GNOME/gtk!4800
Benjamin Otte [Sat, 11 Jun 2022 05:15:30 +0000 (07:15 +0200)]
bookmarklist: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 05:08:23 +0000 (07:08 +0200)]
directorylist: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 05:05:27 +0000 (07:05 +0200)]
filterlistmodel: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 04:43:25 +0000 (06:43 +0200)]
fattenlistmodel: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 04:30:00 +0000 (06:30 +0200)]
listlistmodel: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 03:32:29 +0000 (05:32 +0200)]
maplistmodel: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 03:25:09 +0000 (05:25 +0200)]
multifilter: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 03:15:28 +0000 (05:15 +0200)]
multiselection: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 03:15:05 +0000 (05:15 +0200)]
multisorter: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 02:56:58 +0000 (04:56 +0200)]
noselection: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 02:52:34 +0000 (04:52 +0200)]
propertylookuplistmodel: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 02:51:41 +0000 (04:51 +0200)]
selectionfiltermodel: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 02:50:49 +0000 (04:50 +0200)]
shortcutcontroller: Add ::item-type and ::n-items
Benjamin Otte [Sat, 11 Jun 2022 02:49:51 +0000 (04:49 +0200)]
singleselection: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 02:49:17 +0000 (04:49 +0200)]
slicelistmodel: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 02:48:45 +0000 (04:48 +0200)]
sortlistmodel: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 05:34:07 +0000 (07:34 +0200)]
stack: Add ::item-type and ::n-items to the pages list
Benjamin Otte [Sat, 11 Jun 2022 02:48:03 +0000 (04:48 +0200)]
treelistmodel: Add ::item-type and ::n-items
With tests!
Benjamin Otte [Sat, 11 Jun 2022 03:19:50 +0000 (05:19 +0200)]
multifilter: Actually emit ::items-changed when items change
Benjamin Otte [Sat, 11 Jun 2022 03:10:30 +0000 (05:10 +0200)]
multisorter: Actually emit ::items-changed when items change
Benjamin Otte [Fri, 10 Jun 2022 02:02:30 +0000 (04:02 +0200)]
inspector: Use inscriptions for the rendernodes list
Benjamin Otte [Thu, 9 Jun 2022 23:09:49 +0000 (01:09 +0200)]
reftests: Add test for the overflow methods
Reference is using labels again
Benjamin Otte [Thu, 9 Jun 2022 05:16:13 +0000 (07:16 +0200)]
inscription: Set css name
We use "label" just like GtkLabel as the two widgets differ in the way
they are measured, but they should be styled the same.
If it turns out we change our opinion on this for specific cases, we
can add style classes later.
Benjamin Otte [Thu, 9 Jun 2022 05:14:30 +0000 (07:14 +0200)]
inscription: Add a11y support for text interface
This is entirely untested.
Benjamin Otte [Thu, 9 Jun 2022 03:17:40 +0000 (05:17 +0200)]
inscription: Add ::text-overflow
Can't name it ::overflow, because that's taken by GtkWidget already
Benjamin Otte [Thu, 9 Jun 2022 00:45:59 +0000 (02:45 +0200)]
reftests: Add test for inscription markup parsing
Compare with label markup parsing as the reference.
Benjamin Otte [Thu, 9 Jun 2022 00:43:13 +0000 (02:43 +0200)]
inscription: Add ::markup
Utility property that sets both the ::text and ::attributes properties,
mainly intended for use in ui files to ease translation support and bindings.
Benjamin Otte [Wed, 8 Jun 2022 22:59:05 +0000 (00:59 +0200)]
inscription: Add ::attributes property
Emin Tufan Çetin [Fri, 10 Jun 2022 06:06:14 +0000 (06:06 +0000)]
Update Turkish translation
Benjamin Otte [Thu, 9 Jun 2022 00:42:10 +0000 (02:42 +0200)]
gtkpango: Add G_GNUC_WARN_UNUSED_RESULT
Guess who just spent 10 minutes in gdb and doesn't want to do that
again.